/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package xcore.constraint.util;

import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notifier;

import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;

import org.eclipse.emf.ecore.EObject;

import xcore.constraint.*;

/**
 * <!-- begin-user-doc -->
 * The <b>Adapter Factory</b> for the model.
 * It provides an adapter <code>createXXX</code> method for each class of the model.
 * <!-- end-user-doc -->
 * @see xcore.constraint.ConstraintPackage
 * @generated
 */
public class ConstraintAdapterFactory extends AdapterFactoryImpl {
	/**
	 * The cached model package.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static ConstraintPackage modelPackage;

	/**
	 * Creates an instance of the adapter factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ConstraintAdapterFactory() {
		if (modelPackage == null) {
			modelPackage = ConstraintPackage.eINSTANCE;
		}
	}

	/**
	 * Returns whether this factory is applicable for the type of the object.
	 * <!-- begin-user-doc -->
	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
	 * <!-- end-user-doc -->
	 * @return whether this factory is applicable for the type of the object.
	 * @generated
	 */
	@Override
	public boolean isFactoryForType(Object object) {
		if (object == modelPackage) {
			return true;
		}
		if (object instanceof EObject) {
			return ((EObject)object).eClass().getEPackage() == modelPackage;
		}
		return false;
	}

	/**
	 * The switch that delegates to the <code>createXXX</code> methods.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ConstraintSwitch<Adapter> modelSwitch =
		new ConstraintSwitch<Adapter>() {
			@Override
			public Adapter caseXIntVar(XIntVar object) {
				return createXIntVarAdapter();
			}
			@Override
			public Adapter caseXIntVarExpr(XIntVarExpr object) {
				return createXIntVarExprAdapter();
			}
			@Override
			public Adapter caseXSum(XSum object) {
				return createXSumAdapter();
			}
			@Override
			public Adapter caseXNeg(XNeg object) {
				return createXNegAdapter();
			}
			@Override
			public Adapter caseXScalar(XScalar object) {
				return createXScalarAdapter();
			}
			@Override
			public Adapter caseXConstraint(XConstraint object) {
				return createXConstraintAdapter();
			}
			@Override
			public Adapter caseXBasicConstraint(XBasicConstraint object) {
				return createXBasicConstraintAdapter();
			}
			@Override
			public Adapter caseXEQ(XEQ object) {
				return createXEQAdapter();
			}
			@Override
			public Adapter caseXNEQ(XNEQ object) {
				return createXNEQAdapter();
			}
			@Override
			public Adapter caseXLEQ(XLEQ object) {
				return createXLEQAdapter();
			}
			@Override
			public Adapter caseXLT(XLT object) {
				return createXLTAdapter();
			}
			@Override
			public Adapter caseXIntCst(XIntCst object) {
				return createXIntCstAdapter();
			}
			@Override
			public Adapter caseXIntVarRef(XIntVarRef object) {
				return createXIntVarRefAdapter();
			}
			@Override
			public Adapter caseXIntCstExpr(XIntCstExpr object) {
				return createXIntCstExprAdapter();
			}
			@Override
			public Adapter caseXAdd(XAdd object) {
				return createXAddAdapter();
			}
			@Override
			public Adapter caseXSub(XSub object) {
				return createXSubAdapter();
			}
			@Override
			public Adapter caseXMult(XMult object) {
				return createXMultAdapter();
			}
			@Override
			public Adapter caseXDiv(XDiv object) {
				return createXDivAdapter();
			}
			@Override
			public Adapter caseXPpcm(XPpcm object) {
				return createXPpcmAdapter();
			}
			@Override
			public Adapter caseXIntExpr(XIntExpr object) {
				return createXIntExprAdapter();
			}
			@Override
			public Adapter caseXIntCstRef(XIntCstRef object) {
				return createXIntCstRefAdapter();
			}
			@Override
			public Adapter defaultCase(EObject object) {
				return createEObjectAdapter();
			}
		};

	/**
	 * Creates an adapter for the <code>target</code>.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param target the object to adapt.
	 * @return the adapter for the <code>target</code>.
	 * @generated
	 */
	@Override
	public Adapter createAdapter(Notifier target) {
		return modelSwitch.doSwitch((EObject)target);
	}


	/**
	 * Creates a new adapter for an object of class '{@link xcore.constraint.XIntVar <em>XInt Var</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see xcore.constraint.XIntVar
	 * @generated
	 */
	public Adapter createXIntVarAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link xcore.constraint.XIntVarExpr <em>XInt Var Expr</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see xcore.constraint.XIntVarExpr
	 * @generated
	 */
	public Adapter createXIntVarExprAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link xcore.constraint.XSum <em>XSum</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see xcore.constraint.XSum
	 * @generated
	 */
	public Adapter createXSumAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link xcore.constraint.XNeg <em>XNeg</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see xcore.constraint.XNeg
	 * @generated
	 */
	public Adapter createXNegAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link xcore.constraint.XScalar <em>XScalar</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see xcore.constraint.XScalar
	 * @generated
	 */
	public Adapter createXScalarAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link xcore.constraint.XConstraint <em>XConstraint</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see xcore.constraint.XConstraint
	 * @generated
	 */
	public Adapter createXConstraintAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link xcore.constraint.XBasicConstraint <em>XBasic Constraint</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see xcore.constraint.XBasicConstraint
	 * @generated
	 */
	public Adapter createXBasicConstraintAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link xcore.constraint.XEQ <em>XEQ</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see xcore.constraint.XEQ
	 * @generated
	 */
	public Adapter createXEQAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link xcore.constraint.XNEQ <em>XNEQ</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see xcore.constraint.XNEQ
	 * @generated
	 */
	public Adapter createXNEQAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link xcore.constraint.XLEQ <em>XLEQ</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see xcore.constraint.XLEQ
	 * @generated
	 */
	public Adapter createXLEQAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link xcore.constraint.XLT <em>XLT</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see xcore.constraint.XLT
	 * @generated
	 */
	public Adapter createXLTAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link xcore.constraint.XIntCst <em>XInt Cst</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see xcore.constraint.XIntCst
	 * @generated
	 */
	public Adapter createXIntCstAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link xcore.constraint.XIntVarRef <em>XInt Var Ref</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see xcore.constraint.XIntVarRef
	 * @generated
	 */
	public Adapter createXIntVarRefAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link xcore.constraint.XIntCstExpr <em>XInt Cst Expr</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see xcore.constraint.XIntCstExpr
	 * @generated
	 */
	public Adapter createXIntCstExprAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link xcore.constraint.XAdd <em>XAdd</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see xcore.constraint.XAdd
	 * @generated
	 */
	public Adapter createXAddAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link xcore.constraint.XSub <em>XSub</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see xcore.constraint.XSub
	 * @generated
	 */
	public Adapter createXSubAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link xcore.constraint.XMult <em>XMult</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see xcore.constraint.XMult
	 * @generated
	 */
	public Adapter createXMultAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link xcore.constraint.XDiv <em>XDiv</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see xcore.constraint.XDiv
	 * @generated
	 */
	public Adapter createXDivAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link xcore.constraint.XPpcm <em>XPpcm</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see xcore.constraint.XPpcm
	 * @generated
	 */
	public Adapter createXPpcmAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link xcore.constraint.XIntExpr <em>XInt Expr</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see xcore.constraint.XIntExpr
	 * @generated
	 */
	public Adapter createXIntExprAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link xcore.constraint.XIntCstRef <em>XInt Cst Ref</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see xcore.constraint.XIntCstRef
	 * @generated
	 */
	public Adapter createXIntCstRefAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for the default case.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @generated
	 */
	public Adapter createEObjectAdapter() {
		return null;
	}

} //ConstraintAdapterFactory
